/**
 * @Project : algorithm-learning
 * @Author : Ruoyu Wang
 * @User : Momenta
 * @DateTime : 2024/3/17 18:00
 */

//小美拿到了一个大小为n的数组，她希望删除一个区间后，使得剩余所有元素的乘积未尾至少有k个0。
//小美想知道，一共有多少种不同的删除方案?
//
//输入描述
//  第一行输入两个正整数n，k。
//  第二行输入n个正整数ai，代表小美拿到的数组。
//  1≤ n,k ≤10^5
//  1≤ ai ≤10^9
//输出描述
//  一个整数，代表删除的方案数。
//
//示例1
//5 2
//2 5 3 4 20
//输出
//4

#include <iostream>

using namespace std;

int main() {
    int n, k;
    scanf("%d%d", &n, &k);
    int two = 0;
    int five = 0;
    int numTwo[n];
    int numFive[n];
    for (int i = 0; i < n; ++i) {
        numTwo[i] = 0;
        numFive[i] = 0;
        int x;
        scanf("%d", &x);
        while (x % 2 == 0) {
            numTwo[i]++;
            x /= 2;
        }
        while (x % 5 == 0) {
            numFive[i]++;
            x /= 5;
        }
        two += numTwo[i];
        five += numFive[i];
    }

    two -= k;
    five -= k;

    if (two < 0 || five < 0) {
        puts("0");
        return 0;
    }

    long long res = 0;
    int l = 0;
    for (int r = 0; r < n; ++r) {
        two -= numTwo[r];
        five -= numFive[r];
        while (two < 0 || five < 0) {
            two += numTwo[l];
            five += numFive[l];
            l++;
        }
        res += r - l + 1;
    }

    printf("%lld", res);

    return 0;
}